1000 REM Program to display dot matrix characters from ROM patterns
1010 REM Will Fastie -- 19 Nov 81     Creative Computing  March 1982
1020 REM Entered by Patrick Leabo    Tuscon
1030 DEFINT A-Z
1040 DOTCHAR = 219
1050 DOTSIZE = 1
1060 DOT$=STRING$(DOTSIZE,DOTCHAR)
1070 GOSUB 1410
1080 DEF SEG=&HF000
1090 BASEADR=&HFA6E
1100 BYTESPERCHAR=8
1110 KEY OFF
1120 CLS:PRINT"This program prints out the dot pattern stored in BIOS for graphic characters.     PRESS RETURN TO CONTINUE! ":INPUT A$
1130 CLS
1140 PRINT"PRESS THE ONE YOU WANT TO SEE";
1150 PRINT"---space bar to quit";
1160 CHAR$=INKEY$: IF CHAR$="" THEN 1160
1170 IF CHAR$=" " THEN CHAIN "MENU",1000
1180 CODE =ASC(CHAR$)
1190 IF CODE >= 128 THEN BEEP:GOTO 1130
1200 ADR = BASEADR + (CODE*BYTESPERCHAR)
1210 CLS
1220 LOCATE  6,19:PRINT CHAR$
1230 GOSUB 1440
1240 X=8
1250 Y=(SCREENWIDTH-(8*DOTSIZE))/2
1260 GOSUB 1280
1270 GOTO 1140
1280 FOR ROW=1 TO 8
1290   ROWVAL=PEEK(ADR+(ROW-1))
1300   FOR COL=1 TO 8
1310     COLMASK=2^(7-(COL-1))
1320     IF (ROWVAL AND COLMASK) <> 0 THEN GOSUB 1370
1330   NEXT COL
1340 NEXT ROW
1350 LOCATE 1,1
1360 RETURN
1370 REM Locate to bit position and display giant pixel!
1380 LOCATE X+(ROW-1),Y+(COL-1)*DOTSIZE
1390 PRINT LEFT$(DOT$,DOTSIZE);
1400 RETURN
1410 REM Initialize display
1420 SCREEN 0:WIDTH 40:SCREENWIDTH=40
1430 RETURN
1440 REM BOX PRINTER
1450 X=15:Y= 7:W=8
1460 LOCATE Y,X
1470 PRINT CHR$(201)+STRING$(W,CHR$(205))+CHR$(187)
1480 FOR N = 1 TO 8
1490 LOCATE Y+N,X :PRINT CHR$(186)+STRING$(W,CHR$(32))+CHR$(186)
1500 NEXT N
1510 LOCATE Y+N,X :PRINT CHR$(200)+STRING$(W,CHR$(205))+CHR$(188)
1520 RETURN
